//模板类-定长数组
#include <iostream>
#include <cstring>
using namespace std;
template<class T,int len>
//定长数组
class Array{
public:
    T arr[len];
    Array(){
        memset(arr,0,sizeof(arr));
    }
    T& operator[](int i){return arr[i];}
};
//变长数组
template<class T>
class Vector{
public:
    int len;//数组长度
    T* arr;//数组元素指针
    Vector(int size=0){
        len=size;
        arr=new T[len];//数组动态开辟空间
    }
    T& operator[](int i){
        if(i>=len)resize(i+1);
        return arr[i];
    }
    //数组增大函数
    void resize(int size){
        if(size<=len)return;
        T* tmp=new T[size];
        for(int i=0;i<len;i++){
            tmp[i]=arr[i];
        }
        delete[] arr;
        arr=tmp;
        len=size;
    }
    //数组查看长度
    int size(){return len;};
    ~Vector(){
        delete[] arr;
        arr=NULL;
    }
};
int main()
{
    Vector<string> arr;
    for(int i=0;i<10;i++){
        arr[i]='a'+i;
    }
    for(int i=0;i<10;i++){
        cout<<arr[i]<<" ";
    }
    cout<<endl;
    return 0;
}